6-dars. Istisno (Exception). Fayllar bilan ishlash. (JSON fayllar bilan ishlash)
Dars maqsadlari:
- Fayllar Bilan Ishlash
- Fayllar bilan ishlash asoslarini o'rganish.
- Ma'lumotlarni faylga yozish va o'qish usullarini tushunish.
write,writelines,seek, vatellfunksiyalarini amaliyotda qo'llash.
- JSON Fayli Bilan Ishlash
- JSON formatining nima ekanligini tushunish.
- Python dasturlash tilida JSON fayllari bilan qanday ishlashni o'rganish.
- JSON ma'lumotlarini o'qish va yozish jarayonlarini amaliy misollar bilan ko'rish.
Fayllar Bilan Ishlash
Kirish
Dasturlar ko'pincha ma'lumotlarni saqlash uchun fayllardan foydalanadi. Fayl yaratish, ularga ma'lumot yozish va o'qish jarayonlari dasturchilar uchun juda muhim. Keling, bu jarayonlarni birgalikda o'rganamiz!
Fayl Bilan Ishlash
Fayl bilan ishlash — bu faylni ochish, unga ma'lumot yozish va o'qish jarayoni hisoblanadi. Python dasturlash tilida fayllar bilan ishlash uchun bir qator funksiyalar mavjud.
Faylni Ochish
Faylni ochish uchun open() funksiyasidan foydalanamiz. Bu funksiya quyidagi sintaksisga ega:
fayl = open('fayl_nomi.txt', 'r') # 'r' — o'qish rejimi
Fayl ochish uchun bir nechta rejimlar mavjud:
'r': O'qish rejimi (fayl faqat o'qiladi).'w': Yozish rejimi (faylga yozish uchun, agar fayl mavjud bo'lsa, uni o'chiradi).'a': Qo'shish rejimi (faylga ma'lumot qo'shadi).'b': Ikkilik rejim (binary fayllar bilan ishlash).
Faylga Ma'lumot Yozish
write() va writelines() funksiyalari faylga ma'lumot yozish uchun ishlatiladi.
write() Funktsiyasi
write() funksiyasi bir satr ma'lumot yozish uchun ishlatiladi.
fayl = open('fayl_nomi.txt', 'w') # Yozish rejimida ochamiz
fayl.write("Salom, Python!") # Faylga yozamiz
fayl.close() # Faylni yopamiz
writelines() Funktsiyasi
writelines() funksiyasi bir necha satr ma'lumot yozish uchun ishlatiladi. U list (ro'yxat) sifatida berilgan ma'lumotlarni faylga yozadi.
satrlar = ["Birinci satr\n", "Ikkinchi satr\n", "Uchinchi satr\n"]
fayl = open('fayl_nomi.txt', 'w')
fayl.writelines(satrlar) # Ro'yxatdagi barcha satrlarni faylga yozamiz
fayl.close()
Fayldan Ma'lumot O'qish
Fayldan ma'lumot o'qish uchun read(), readline(), va readlines() funksiyalaridan foydalanishimiz mumkin.
read() Funktsiyasi
read() funksiyasi faylning barcha ma'lumotlarini o'qiydi.
fayl = open('fayl_nomi.txt', 'r')
malumot = fayl.read() # Fayl ma'lumotini o'qiydi
print(malumot) # O'qilgan ma'lumotni chiqaramiz
fayl.close()
readline() Funktsiyasi
readline() funksiyasi fayldagi bir satrni o'qiydi.
fayl = open('fayl_nomi.txt', 'r')
birinchi_satr = fayl.readline() # Birinchi satrni o'qiydi
print(birinchi_satr) # O'qilgan satrni chiqaramiz
fayl.close()
readlines() Funktsiyasi
readlines() funksiyasi fayldagi barcha satrlarni ro'yxatga saqlaydi.
fayl = open('fayl_nomi.txt', 'r')
satrlar = fayl.readlines() # Barcha satrlarni o'qiydi
print(satrlar) # O'qilgan satrlarni chiqaramiz
fayl.close()
seek() va tell() Funktsiyalari
seek(offset): Faylda o'qish yoki yozish pozitsiyasini o'zgartiradi.offset— pozitsiya (ya'ni qaysi joyga o'tish kerak).
fayl = open('fayl_nomi.txt', 'r')
fayl.seek(0) # Faylning boshiga o'tamiz
tell(): Hozirgi o'qish yoki yozish pozitsiyasini qaytaradi.
fayl = open('fayl_nomi.txt', 'r')
pozitsiya = fayl.tell() # Hozirgi pozitsiyani olish
print(pozitsiya) # O'qigan pozitsiyani chiqaramiz
Qiziqarli Faktlar
- Fayllar kompyuterda ma'lumotlarni saqlash uchun zarur. Ular matn, rasm, video va boshqa formatlarda bo'lishi mumkin.
- Python fayllarni ochish va ularga ma'lumot yozish jarayonini osonlashtiradi, bu esa dasturchilar uchun juda qulay.
Misollar
-
Faylga talabalar ro'yxatini yozish:
talabalar = ["Ali\n", "Vali\n", "Tohir\n"]
fayl = open('talabalar.txt', 'w')
fayl.writelines(talabalar) # Talabalar ro'yxatini faylga yozamiz
fayl.close() -
Fayldan ma'lumot o'qish:
fayl = open('talabalar.txt', 'r')
print(fayl.read()) # Fayldagi ma'lumotni chiqaramiz
fayl.close() -
Faylni yangilash:
fayl = open('talabalar.txt', 'a') # Qo'shish rejimida ochamiz
fayl.write("Madina\n") # Yangi talaba qo'shamiz
fayl.close()
JSON Fayli Bilan Ishlash
Kirish
JSON (JavaScript Object Notation) — bu ma'lumotlarni saqlash va almashish uchun mo'ljallangan juda oson va qulay format. Bu format dasturchilar orasida juda mashhur, chunki u ko'p dasturlash tillarida qo'llaniladi, jumladan, Python’da ham.
JSON Formatining Tushunchasi
JSON — bu oddiy matnli format bo'lib, u ma'lumotlarni tuzilmasini belgilashda foydalaniladi. JSON fayllari asosan ikkita asosiy tuzilishga ega:
- Obyektlar: Kalit-qiymat juftlaridan iborat.
- Misol:
{"ism": "Ali", "yosh": 25}
- Misol:
- Massivlar: Tartiblangan qiymatlar ro'yxati.
- Misol:
["red", "green", "blue"]
- Misol:
JSON Fayllarining Afzalliklari
- Oson o'qilishi va yozilishi: JSON fayllarini o'qish va ularga yozish juda sodda.
- Platformalararo moslik: JSON barcha dasturlash tillarida qo'llanilishi mumkin.
- Tuzilmalilik: Ma'lumotlar to'g'ri tashkil etilgan va ko'rinishi oson.
JSON Faylini O'qish va Yozish
Python'da JSON Kutubxonasi
Python'da JSON formatidagi ma'lumotlarni o'qish va yozish uchun json moduli ishlatiladi. Bu modul yordamida JSON ma'lumotlarini Python obyektlariga o'zgartirish yoki aksincha, Python obyektlarini JSON formatiga aylantirish mumkin.
JSON Faylini O'qish
Keling, JSON faylini qanday o'qishni ko'raylik. Avval JSON faylini yaratamiz. data.json faylini quyidagi tarkib bilan yarataylik:
{
"talabalar": [
{"ism": "Ali", "yosh": 20},
{"ism": "Oygul", "yosh": 22},
{"ism": "Hasan", "yosh": 21}
]
}
JSON Faylini O'qish
import json # JSON modulini import qilamiz
# JSON faylini ochamiz
with open('data.json', 'r', encoding='utf-8') as fayl:
malumot = json.load(fayl) # Fayldan JSON ma'lumotini o'qiymiz
# O'qilgan ma'lumotni chiqaramiz
print(malumot) # {'talabalar': [{'ism': 'Ali', 'yosh': 20}, ...]}
Izoh:
json.load() funksiyasi JSON faylidan ma'lumotlarni o'qiydi va ularni Python obyektiga (masalan, ro'yxat yoki lug'at) aylantiradi.
JSON Faylini Yozish
Endi esa JSON formatidagi ma'lumotlarni qanday yozishni ko'raylik. Biz quyidagi Python kodidan foydalanamiz:
import json # JSON modulini import qilamiz
# Ma'lumotlarni tayyorlaymiz
talabalar = {
"talabalar": [
{"ism": "Ali", "yosh": 20},
{"ism": "Oygul", "yosh": 22},
{"ism": "Hasan", "yosh": 21}
]
}
# JSON fayliga yozamiz
with open('yangi_data.json', 'w', encoding='utf-8') as fayl:
json.dump(talabalar, fayl, ensure_ascii=False, indent=4) # JSON ma'lumotlarini yozamiz
Izoh:
json.dump() funksiyasi Python obyektlarini JSON formatida faylga yozadi. ensure_ascii=False parametri non-ASCII belgilarni to'g'ri saqlash imkonini beradi. indent=4 esa faylni formatlaydi va o'qilishi oson bo'lishini ta'minlaydi.
Qiziqarli Faktlar
- JSON va XML: JSON ko'pincha XML formatiga qaraganda osonroq va tezroq hisoblanadi, shuning uchun ko'p dasturchilar JSON'ni afzal ko'radi.
- JavaScript bilan Moslik: JSON formatidagi ma'lumotlar JavaScript dasturlash tilida ham foydalaniladi, bu esa ularni veb dasturlashda keng qo'llash imkonini beradi.
Misollar
-
Ma'lumotlarni saqlash: Deylik, sizda talabalarning ma'lumotlari bor va ularni JSON faylida saqlamoqchisiz. Yuqorida keltirilgan kod yordamida buni osonlik bilan amalga oshirishingiz mumkin.
-
Web API dan foydalanish: Ko'plab veb xizmatlar JSON formatida ma'lumotlarni uzatadi. Siz Python'da bu ma'lumotlarni olish va tahlil qilish uchun
requestsmodulidan foydalanishingiz mumkin.import requests
import json
# API dan ma'lumot olish
javob = requests.get('https://jsonplaceholder.typicode.com/posts')
malumot = json.loads(javob.text) # JSON ma'lumotini o'qiymiz
print(malumot)
Xulosa
Fayl ochish, ma'lumot yozish va o'qish jarayonlari Python dasturlash tilida qanday amalga oshirilishini ko'rdik. write, writelines, seek, va tell funksiyalarini ishlatish orqali biz fayllar bilan ishlashni yanada osonlashtirdik.
Biz JSON faylini o'qish va yozish jarayonlarini amaliy misollar bilan ko'rdik. JSON juda muhim format bo'lib, ma'lumotlarni oson saqlash va almashishga yordam beradi.
Savollar va Javoblar
- Faylni qanday ochamiz?
- Faylni
open()funksiyasi yordamida ochamiz, masalan:open('fayl_nomi.txt', 'r').
- Faylni
write()funksiyasi nima qiladi?write()funksiyasi faylga bir satr ma'lumot yozadi.
seek()funksiyasi nima uchun ishlatiladi?seek()funksiyasi faylning o'qish yoki yozish pozitsiyasini o'zgartiradi.
- Fayldan barcha satrlarni qanday o'qish mumkin?
- Fayldan barcha satrlarni o'qish uchun
readlines()funksiyasidan foydalanamiz.
- Fayldan barcha satrlarni o'qish uchun
- JSON faylini qanday o'qiymiz?
- JSON faylini o'qish uchun
json.load()funksiyasidan foydalanamiz.
- JSON faylini o'qish uchun
json.dump()funksiyasi nima qiladi?json.dump()funksiyasi Python obyektlarini JSON formatida faylga yozadi.
- JSON va XML o'rtasidagi farq nima?
- JSON o'qish va yozish uchun osonroq bo'lib, ko'pincha XML formatidan afzal ko'riladi.
- JSON formatida qanday tuzilmalar mavjud?
- JSON obyekti (kalit-qiymat juftlari) va massivlardan (ro'yxatlar) iborat.